package com.tencent.wxpay.protocol.request;

import com.tencent.wxpay.common.Signature;

import java.io.Serializable;

/**
 * 订单查询接口请求数据对象
 */
public class OrderQueryReqData extends BaseReqData implements Serializable {
    private static final long serialVersionUID = -1255671278201856512L;
    /**
     * 微信订单号
     * 必填：与 out_trade_no 二选一
     * 描述：微信的订单号，优先使用
     */
    private String transaction_id;
    /**
     * 商户订单号
     * 必填：与 transaction_id 二选一
     * 描述：商户系统内部的订单号，当没提供transaction_id时需要传这个。
     */
    private String out_trade_no;

    /**
     * 请求订单查询接口构造方法
     *
     * @param transactionID 是微信系统为每一笔支付交易分配的订单号，通过这个订单号可以标识这笔交易，它由支付订单API支付成功时返回的数据里面获取到。建议优先使用
     * @param outTradeNo    商户系统内部的订单号,transaction_id 、out_trade_no 二选一，如果同时存在优先级：transaction_id>out_trade_no
     * @return API返回的XML数据
     * @throws Exception
     */
    public OrderQueryReqData(String transactionID, String outTradeNo) {
        super();
        this.transaction_id = transactionID;
        this.out_trade_no = outTradeNo;
        setSign(Signature.getSign(toMap(this)));
    }

    public String getTransaction_id() {
        return transaction_id;
    }

    public void setTransaction_id(String transaction_id) {
        this.transaction_id = transaction_id;
    }

    public String getOut_trade_no() {
        return out_trade_no;
    }

    public void setOut_trade_no(String out_trade_no) {
        this.out_trade_no = out_trade_no;
    }
}
